package cn.hou.java.designpattern._07observer;

import java.util.Observable;
import java.util.Observer;

public class Test01 {
	
	public static void main(String[] args) {
		Person person=new Person();
		MyObserver myObserver = new MyObserver();
		//添加一个观察者
		person.addObserver(myObserver);
		//匿名内部类方式直接添加
		person.addObserver(new Observer() {
			@Override
			public void update(Observable o, Object arg) {
				if(arg!=null){
					System.out.println("匿名的观察者:对象的一个属性改变成了"+arg);			
				}else{
					System.out.println("匿名的观察者:对象的一个属性改变了");
				}
			}
		});
		//当前有几个观察者在观察我
		System.out.println(person.countObservers());
		//移除所有观察者
		person.deleteObservers();
		//移除某一个
		person.deleteObserver(myObserver);
		//判断对象是否改变
		person.hasChanged();
		person.setName("姚振");
		person.setAge(18);
	}
}
